home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / misc / football / exec / updatesettings.rexx < prev    next >
OS/2 REXX Batch file  |  1999-11-29  |  6KB  |  286 lines

  1. /* ***********************************************************************
  2.  
  3.   UPDATE SETTINGS PROGRAM FOR FOOTBALL REXX SUITE
  4.   ------------------------------------------------
  5.                    Copyright  Mark Naughton 1999
  6.  
  7.  
  8. Version    Date     History
  9. --------------------------------------------------------------------------
  10.  
  11.  1.0       250499   Created as a partner to Football to update the
  12.                     settings and league name in all files.
  13.            250899   Added error msg to file checks.
  14.            270899   Converted to use locale. Some error messages, before
  15.                     reading the locale, will still be in English.
  16.  
  17. **************************************************************************
  18.  
  19. Procedure
  20. ---------
  21.  
  22. 1. Check files exist. Get league name from '.df' file.
  23. 2. Read '.sf' file into an array. Search array for indicator for league
  24.    name. When found, check to see if the names are different - if no, then
  25.    don't update, else write the new name into the array. When finished and
  26.    updates have been made, write the new data into the old file.
  27. 3. Repeat step 2 for '.sflearn' file.
  28. 4. Repeat step 2 for '.stats' file.
  29. 5. Exit.
  30.  
  31. ************************************************************************** */
  32. PARSE ARG league_file
  33.  
  34. version      = 1
  35. league_file  = "Data/"strip(league_file)
  36. input_file   = '.df'
  37. input2_file  = '.sf'
  38. input3_file  = '.sflearn'
  39. input4_file  = '.stats'
  40. title        = '*LEAGUE_NAME='
  41. sdlines.     = '???'
  42. separator    = '*'
  43.  
  44.  
  45. if open(datafile,"Data/Football.locale",'r') then do
  46.    line = readln(datafile)
  47.    locdir = strip(line)
  48.    close(datafile)
  49. end
  50. else do
  51.    say
  52.    say "ERROR :    (UpdateSettings)"
  53.    say
  54.    say "Cannot read 'Data/Football.locale' for the locale settings."
  55.    exit
  56. end
  57.  
  58. locdir = locdir"Exec/UpdateSettings.data"
  59.  
  60. if open(datafile,"ENV:FootballRXPath",'r') then do
  61.    line = readln(datafile)
  62.    rxdir = strip(line)
  63.    close(datafile)
  64. end
  65. else
  66.    rxdir = "SYS:Rexxc/"
  67.  
  68. if exists(locdir) > 0 then do
  69.   address command rxdir'rx 'locdir
  70.   VarCount = getclip('VarCount')
  71.   do i = 1 to VarCount
  72.     interpret getclip('var.'i)
  73.   end
  74. end
  75. else do
  76.    say
  77.    say "ERROR :    (UpdateSettings)"
  78.    say
  79.    say "Cannot find '"locdir"' to read locale settings."
  80.    exit
  81. end
  82.  
  83. if exists(league_file || input_file) = 0  then do
  84.    say
  85.    say us_error
  86.    say
  87.    say us_one"'"league_file||input_file"'."
  88.    exit
  89. end
  90. if exists(league_file || input2_file) = 0 then do
  91.    say
  92.    say us_error
  93.    say
  94.    say us_one"'"league_file||input2_file"'."
  95.    exit
  96. end
  97. if exists(league_file || input3_file) = 0 then do
  98.    say
  99.    say us_error
  100.    say
  101.    say us_one"'"league_file||input3_file"'."
  102.    exit
  103. end
  104. if exists(league_file || input4_file) = 0 then do
  105.    say
  106.    say us_error
  107.    say
  108.    say us_one"'"league_file||input4_file"'."
  109.    exit
  110. end
  111.  
  112. if open(datafile,league_file || input_file,'r') then do
  113.    do while ~eof(datafile)
  114.       line = readln(datafile)
  115.       line = strip(line)
  116.       if pos(separator,line) > 0 then do
  117.          if pos(title,line) > 0 then do
  118.             parse var line "*LEAGUE_NAME=" league_title
  119.             league_title = strip(league_title)
  120.          end
  121.       end
  122.    end
  123.    close(datafile)
  124. end
  125. else do
  126.    say
  127.    say us_error
  128.    say
  129.    say us_two"'"league_file || input_file"'"us_three
  130.    exit
  131. end
  132.  
  133.  
  134. sdcount = 0
  135. if open(datafile,league_file||input2_file,'r') then do
  136.    do while ~eof(datafile)
  137.       line = readln(datafile)
  138.       line = strip(line)
  139.       sdcount         = sdcount + 1
  140.       sdlines.sdcount = line
  141.    end
  142.    close(datafile)
  143. end
  144. else do
  145.    say
  146.    say us_error
  147.    say
  148.    say us_two"'"league_file||input2_file"'"us_three
  149.    exit
  150. end
  151.  
  152. mkt = 0
  153. do i=1 to sdcount
  154.    if pos("**",sdlines.i) > 0 then do
  155.       parse var sdlines.i "**" ltitle
  156.       if pos(ltitle,league_title) = 0 then do
  157.          sdlines.i = "** "league_title
  158.          mkt = 1
  159.          leave
  160.       end
  161.       else do
  162.          mkt = 0
  163.          leave
  164.       end
  165.    end
  166. end
  167.  
  168. if mkt = 1 then do
  169.    if open(datafile3,league_file || input2_file,'w') then do
  170.       do j=1 to sdcount
  171.          writeln(datafile3,sdlines.j)
  172.       end
  173.       close(datafile3)
  174.    end
  175.    else do
  176.       say
  177.       say us_error
  178.       say
  179.       say us_two"'"league_file || input2_file"'"us_four
  180.       exit
  181.    end
  182. end
  183.  
  184. sdcount = 0
  185. if open(datafile,league_file||input3_file,'r') then do
  186.    do while ~eof(datafile)
  187.       line = readln(datafile)
  188.       line = strip(line)
  189.       sdcount         = sdcount + 1
  190.       sdlines.sdcount = line
  191.    end
  192.    close(datafile)
  193. end
  194. else do
  195.    say
  196.    say us_error
  197.    say
  198.    say us_two"'"league_file||input3_file"'"us_three
  199.    exit
  200. end
  201.  
  202. mkt = 0
  203. do i=1 to sdcount
  204.    if pos("**",sdlines.i) > 0 then do
  205.       parse var sdlines.i "**" ltitle
  206.       if pos(ltitle,league_title) = 0 then do
  207.          sdlines.i = "** "league_title
  208.          mkt = 1
  209.          leave
  210.       end
  211.       else do
  212.          mkt = 0
  213.          leave
  214.       end
  215.    end
  216. end
  217.  
  218. if mkt = 1 then do
  219.    if open(datafile3,league_file || input3_file,'w') then do
  220.       do j=1 to sdcount
  221.          writeln(datafile3,sdlines.j)
  222.       end
  223.       close(datafile3)
  224.    end
  225.    else do
  226.       say
  227.       say us_error
  228.       say
  229.       say us_two"'"league_file || input3_file"'"us_four
  230.       exit
  231.    end
  232. end
  233.  
  234.  
  235. sdcount = 0
  236. if open(datafile,league_file||input4_file,'r') then do
  237.    do while ~eof(datafile)
  238.       line = readln(datafile)
  239.       line = strip(line)
  240.       sdcount         = sdcount + 1
  241.       sdlines.sdcount = line
  242.    end
  243.    close(datafile)
  244. end
  245. else do
  246.    say
  247.    say us_error
  248.    say
  249.    say us_two"'"league_file||input4_file"'"us_five
  250.    exit
  251. end
  252.  
  253. mkt = 0
  254. do i=1 to sdcount
  255.    if pos(title,sdlines.i) > 0 then do
  256.       parse var sdlines.i "*LEAGUE_NAME=" ltitle
  257.       if pos(ltitle,league_title) = 0 then do
  258.          sdlines.i = "*LEAGUE_NAME="league_title
  259.          mkt = 1
  260.          leave
  261.       end
  262.       else do
  263.          mkt = 0
  264.          leave
  265.       end
  266.    end
  267. end
  268.  
  269. if mkt = 1 then do
  270.    if open(datafile3,league_file || input4_file,'w') then do
  271.       do j=1 to sdcount
  272.          writeln(datafile3,sdlines.j)
  273.       end
  274.       close(datafile3)
  275.    end
  276.    else do
  277.       say
  278.       say us_error
  279.       say
  280.       say us_two"'"league_file || input4_file"'"us_four
  281.       exit
  282.    end
  283. end
  284.  
  285.  
  286. exit